# Esta clase permite bajar el reporte de finanzas a PDF.
class FinanzasPdf 

# Crea el contenido que tendrá el PDF de salida del módulo de Finanzas. 
def self.escribir(user)
  pdf = PDF::Writer.new
  
  @ventas = Comunicacion.find(:all,:conditions => ['type = "Venta"'])
  @ingresos = Comunicacion.find(:all,:conditions => ['type = "Ingreso"'])
  pdf.image "./public/images/topbg.jpg"
  pdf.text 'Reporte de Finanzas',:font_size => 20,:font_weight => :bold, :justification => :center
  pdf.text ' '
  pdf.text 'Fecha: '+Date.today.to_s, :font_size => 12
  pdf.text 'Hora: '+Time.now.hour.to_s+':'+Time.now.min.to_s+':'+Time.now.sec.to_s
  pdf.text 'Usuario: '+user.name
  pdf.text ' '
  
  table = PDF::SimpleTable.new
  
  table.heading_color = Color::RGB::White
  
  table.shade_headings = true
  table.shade_heading_color = Color::RGB::Orange
  
  table.shade_color = Color::RGB::White
  
  table.title = "Ventas"
  table.title_font_size = 18
  table.title_gap = 20
table.column_order.push(*%w(Titulo Contacto Fecha Cuenta Usuario Monto))

table.columns["1"] = PDF::SimpleTable::Column.new("Titulo")
table.columns["1"].heading = "Titulo"


table.columns["2"] = PDF::SimpleTable::Column.new("Contacto")
table.columns["2"].heading = "Contacto"

table.columns["3"] = PDF::SimpleTable::Column.new("Fecha")
table.columns["3"].heading = "Fecha"

table.columns["4"] = PDF::SimpleTable::Column.new("Cuenta")
table.columns["4"].heading = "Cuenta"


table.columns["5"] = PDF::SimpleTable::Column.new("Usuario")
table.columns["5"].heading = "Usuario"


table.columns["6"] = PDF::SimpleTable::Column.new("Monto")
table.columns["6"].heading = "Monto"


  table.show_lines    = :all
  table.show_headings = true
  table.orientation   = :center
  table.position      = :center

	data = ''
	total = Array.new
	total_ventas = 0
  @ventas.each do |com|
		monto = 0
		if com.producto
			monto = com.producto.monto
			total_ventas += com.producto.monto
		end	
		data = {"Titulo"=> com.titulo, "Contacto"=> com.contacto.nombre,"Cuenta"=> com.cuenta.razon_social,"Fecha"=> com.fecha.to_s,"Usuario"=> com.user.login, "Monto"=> monto.to_s}
		total.push(data) 
	end

	if !total.empty? then
	
  	table.data.replace total
  	table.render_on(pdf)
  
  	pdf.text ' '
		pdf.text 'Total de Ventas: $'+total_ventas.to_s  
  	pdf.text ' '
	
	else
	
		pdf.text ' '
		pdf.text 'No se realizaron ventas'
		pdf.text ' '
		
	end
  
  table.title = "Donaciones"
  data = ''
	total2 = Array.new
	total_donaciones = 0
  @ingresos.each do |com|
		monto = 0
		if com.producto
			monto = com.producto.monto
			total_donaciones += com.producto.monto
		end	
		data = {"Titulo"=> com.titulo, "Contacto"=> com.contacto.nombre,"Cuenta"=> com.cuenta.razon_social, "Fecha"=> com.fecha.to_s,"Usuario"=> com.user.login, "Monto"=> monto.to_s}
		total2.push(data) 
	end

	if ! total2.empty? then
  
  	table.data.replace total2
  	table.render_on(pdf)
  
  	pdf.text ' '
  	pdf.text 'Total de Donaciones: $'+total_donaciones.to_s
  	pdf.text ' '
  
  else
  
  	pdf.text ' '
  	pdf.text 'No se registraron donaciones'
  	pdf.text ' '
  
  end
  
  total = total_ventas + total_donaciones
  pdf.text 'Total: $'+total.to_s,:font_size => 18,:font_weight => :bold  
  pdf.render
end

end
